package com.hsl.housaileibot001.model;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 模拟题生成任务实体类
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@TableName("mock_exam_generation_task")
@Schema(description = "模拟题生成任务")
public class MockExamGenerationTask extends BaseEntity {

    /**
     * 任务ID（主键，同时映射到 id 字段）
     */
    @Schema(description = "任务ID")
    private String taskId;
    
    /**
     * 重写 id 字段，使用 taskId 的 hash 值
     */
    @Override
    public Long getId() {
        if (taskId != null) {
            return (long) taskId.hashCode();
        }
        return super.getId();
    }
    
    @Override
    public void setId(Long id) {
        super.setId(id);
    }

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;

    /**
     * 标签，多个标签用逗号分隔
     */
    @Schema(description = "标签")
    private String tags;

    /**
     * 总题目数
     */
    @Schema(description = "总题目数")
    private Integer totalCount;

    /**
     * 已完成数
     */
    @Schema(description = "已完成数")
    private Integer completedCount;

    /**
     * 失败数
     */
    @Schema(description = "失败数")
    private Integer failedCount;

    /**
     * 状态（PENDING/PROCESSING/COMPLETED/FAILED）
     */
    @Schema(description = "状态")
    private String status;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    private LocalDateTime endTime;

    /**
     * 错误信息
     */
    @Schema(description = "错误信息")
    private String errorMessage;
}

